[IA64] Fix ptc.ga emulation
authorAlex Williamson <alex.williamson@hp.com>
Fri, 13 Apr 2007 14:33:21 +0000 (08:33 -0600)
committerAlex Williamson <alex.williamson@hp.com>
Fri, 13 Apr 2007 14:33:21 +0000 (08:33 -0600)
commit94bf994b3714cb0c9fff0fe34e1dae934112710e
treee6f79957c88eb5061b05bf4cc8aaefb07010130e
parent0dd835abe09996a76ab19bfa150242ef14b966e4
[IA64] Fix ptc.ga emulation

ptc.ga infrequently clobbers the region register 0.

When vcpu1 purges TLBs of vcpu2 and ptc_ga_remote_func() is called
locally not via IPI (i.e. vcpu1 shares the same pcpu with vcpu2),
in ptc_ga_remote_func(),

  save vrr[0] of vcpu2
  ... => switch to vcpu2 and set a new value of vrr[0]
  restore vrr[0] of vcpu2 // the new value is lost

Windows will crash due to this issue.

Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
xen/arch/ia64/vmx/vmmu.c